#元组：python内置的数据结构之一，是一个不可变序列
#不可变序列：就是没有增删查改

#可变序列：列表、字典
list=[1,2,3]
print(id(list))
list.append(4)
print(id(list))#打印id和前面一样


#不可变序列：字符串、元组
s='hello'
print(id(s))
s+='world'
print(id(s))#打印id和前面不一样

#元祖的创建方式
#1.使用小括号
t=('python' ,'hello',90)
print(t)#('python', 'hello', 90)
print(type(t))#<class 'tuple'>
#'python','hello',90都是元素对象，他们之间用逗号分割
#2.使用内置函数tuple()
t1=tuple(('python' ,'hello',90))
print(t1)#('python', 'hello', 90)
print(type(t1))#<class 'tuple'>

#注意：如果元组只有一个元素，需要使用括号和逗号
#eg:
t2=(10)
print(type(t2))#<class 'int'>
t3=(10,)
print(type(t3))#<class 'tuple'>


#空列表创建方式：
#法一
list=[]


#空字典创建方式：
#法一
d={}
#法二
d=dict()


#空元组创建方式：
t=()
t=tuple()
print('空列表',list)
print('空字典',d)
print('空元组',t)

t=(1,[2,3],4)
print(t[0],type(t[0]))#1 <class 'int'>
print(t[1],type(t[1]))#[2, 3] <class 'list'>
print(t[2],type(t[2]))#4 <class 'int'>
#t[1]=100#这里会报错，元组是不允许修改内容的
t[1].append(100)
print(t[1])#[2, 3, 100]，可以往里面加元素

#t[0]=100#这里也会报错，元组是不允许修改内容的

#元祖的遍历
#法一：索引
print(t[0])
print(t[1])
print(t[2])
#这种方法效率非常差，并且你得知道有多少元素，如果下标越界就会报错

print('======分割线=======')
#法二：遍历元祖
for i in t:
    print(i)